# !/usr/bin/env python
# -*- coding: utf-8 -*-
"""
 -------------------------------------------------
    File Name:     base_enum.py
    Description:   
 -------------------------------------------------
 """

import enum


class StrEnum(str, enum.Enum):
    """字符串枚举"""

    @classmethod
    def has_value(cls, value_str: str) -> bool:
        """
        检查枚举类中是否存在一个成员的值（不区分大小写）与给定字符串匹配。
        """
        # 遍历枚举类中的每个成员，比较其值（转换为小写）与输入字符串（也转换为小写）。
        # 使用 any() 函数，只要找到一个匹配的值，就返回 True。
        return any(value_str.lower() == member.value.lower() for member in cls)

    @classmethod
    def has_name(cls, name_str: str) -> bool:
        """
        检查枚举类中是否包含具有指定名称的成员。
        """
        return any(name_str.lower() == member.name.lower() for member in cls)

    @classmethod
    def get_all_values(cls) -> list:
        """
        获取枚举类中所有成员的值
        """
        return [member.value for member in cls]

    @classmethod
    def get_name_by_value(cls, name_str: str):
        for member in cls:
            if member.value == name_str:
                return member.name
        return None


if __name__ == '__main__':
    print(StrEnum.has_value("A"))
